/**
作用： 类的名录   		也是所有类的开始
格式: abstract class 类名 {
	abstract 方法();
	}
####重点 继承的所有类必须实现源抽象类的所有没实现的抽象方法 -除非是abstract 二级抽象类 
	
	
抽象类：用 abstract关键字声明的类称为抽象类
很多具有相同特征和行为的对象可以抽象为一个类，
很多具有相同特征和行为的类可以抽象为一个抽象类

1.抽象类可以没有抽象方法，有抽象方法的类必须是抽象类
2.非抽象类继承抽象类必须实现所有抽象方法				 
3.抽象类可以继承抽象类，可以不实现父类抽象方法
4.抽象类可以有方法实现和属性
5.抽象类不能被实例化
6.抽象类不能声明为final
7.抽象类可以有构造方法
*@author leo
*@company leo's company
*@description java_study
2024年2月7日下午8:33:55
Administrator
 */

/*
package com.leo.第五章_面向对象下;
 
public class U5_L8_抽象类 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		
	}

}

abstract class A1{
	protected String name;
	protected int size;
	protected abstract void printinfo();
	protected abstract void printinfo_2();
}

class Al_a1 extends A1{

	@Override
	protected void printinfo() {
		System.out.println("继承类需要实现抽象类的所有抽象方法！");
		
	}

	@Override
	protected void printinfo_2() {
		System.out.println("继承类需要实现抽象类的所有抽象方法！");
		
	}
}

final class A1_a2 extends A1{

	@Override
	protected void printinfo() {
		System.out.println("继承类需要实现抽象类的所有抽象方法！");
		
	}

	@Override
	protected void printinfo_2() {
		System.out.println("继承类需要实现抽象类的所有抽象方法！");	
	}	
}
	

abstract class AA1 extends A1{
	protected abstract void printinfo_2();
}

class AA1_a1 extends AA1{
	protected void printinfo_2() {
		System.out.println("实现类必须实现继承的所有方法。override");
	}

	@Override
	protected void printinfo() {
		// TODO Auto-generated method stub
		
	}

}

final class AA1_a2 extends AA1{
	protected void printinfo_2() {
		System.out.println("???");
	}

	@Override
	protected void printinfo() {
		// TODO Auto-generated method stub
		
	}
}
*/


